package cn.edu.wfit.modules.infomanagement.domain;

import cn.edu.wfit.common.core.annotation.Excel;
import cn.edu.wfit.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 学生管理对象 cis_student
 *
 * @author 韩强
 * @date 2024-12-27
 */
public class Student extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 学生id
     */

    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;

    /**
     * 学号
     */
    @Excel(name = "学号")
    private String stuCode;

    /**
     * 校区id
     */
    @Excel(name = "校区id")
    private Long campusId;

    /**
     * 学生姓名
     */
    @Excel(name = "学生姓名")
    private String realname;

    /**
     * 用户性别（男 女 未知）
     */
    @Excel(name = "用户性别", readConverterExp = "男=,女=,未=知")
    private String sex;

    /**
     * 出生日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /**
     * 身份证
     */
    @Excel(name = "身份证")
    private String idCard;

    /**
     * 政治面貌
     */
    @Excel(name = "政治面貌")
    private String politicalStatus;

    /**
     * 民族
     */
    @Excel(name = "民族")
    private String ethnicity;

    /**
     * 手机
     */
    @Excel(name = "手机")
    private String phone;

    /**
     * 紧急联系人
     */
    @Excel(name = "紧急联系人")
    private String emergencyContact;

    /**
     * 紧急联系电话
     */
    @Excel(name = "紧急联系电话")
    private String emergencyPhone;

    /**
     * 籍贯
     */
    @Excel(name = "籍贯")
    private String nativePlace;

    /**
     * 住址
     */
    @Excel(name = "住址")
    private String address;

    /**
     * 生源地
     */
    @Excel(name = "生源地")
    private String sourcePlace;

    /**
     * 户口性质
     */
    @Excel(name = "户口性质")
    private String householdType;

    /**
     * 书院id
     */
    @Excel(name = "书院id")
    private Long dormbuildingId;

    /**
     * 书院名称
     */
    @Excel(name = "书院名称")
    private String dormbuildingName;

    /**
     * 宿舍id
     */
    @Excel(name = "宿舍id")
    private Long dormId;

    /**
     * 宿舍名称
     */
    @Excel(name = "宿舍名称")
    private String dormName;

    /**
     * 专业id
     */
    @Excel(name = "专业id")
    private Long majorId;

    /**
     * 专业名称
     */
    @Excel(name = "专业名称")
    private String majorName;

    /**
     * 班级id
     */
    @Excel(name = "班级id")
    private Long clsId;

    /**
     * 班级名称
     */
    @Excel(name = "班级名称")
    private String clsName;

    /**
     * 二级学院id
     */
    @Excel(name = "二级学院id")
    private Long collegeId;

    /**
     * 学院名称
     */
    @Excel(name = "学院名称")
    private String collegeName;

    /**
     * 班主任id
     */
    @Excel(name = "班主任id")
    private Long teacherId;

    /**
     * 班主任姓名
     */
    @Excel(name = "班主任姓名")
    private String teacherName;

    /**
     * 育人老师id
     */
    @Excel(name = "育人老师id")
    private Long counselorId;

    /**
     * 育人老师姓名
     */
    @Excel(name = "育人老师姓名")
    private String counselorName;

    /**
     * 银行卡
     */
    @Excel(name = "银行卡")
    private String bankCard;

    /**
     * 开户行
     */
    @Excel(name = "开户行")
    private String issuingBank;

    /**
     * 照片
     */
    @Excel(name = "照片")
    private String photo;

    /**
     * 状态（0正常 1停用）
     */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    @Excel(name = "登录id")
    private int loginId;
    /**
     * 方向id
     */
    @Excel(name = "方向id")
    private int directionId;

    public void setLoginId(int loginId) {
        this.loginId = loginId;
    }

    public int getLoginId() {
        return loginId;
    }

    public int getDirectionId() {
        return directionId;
    }

    public void setDirectionId(int directionId) {
        this.directionId = directionId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setStuCode(String stuCode) {
        this.stuCode = stuCode;
    }

    public String getStuCode() {
        return stuCode;
    }

    public void setCampusId(Long campusId) {
        this.campusId = campusId;
    }

    public Long getCampusId() {
        return campusId;
    }

    public void setRealname(String realname) {
        this.realname = realname;
    }

    public String getRealname() {
        return realname;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSex() {
        return sex;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setPoliticalStatus(String politicalStatus) {
        this.politicalStatus = politicalStatus;
    }

    public String getPoliticalStatus() {
        return politicalStatus;
    }

    public void setEthnicity(String ethnicity) {
        this.ethnicity = ethnicity;
    }

    public String getEthnicity() {
        return ethnicity;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPhone() {
        return phone;
    }

    public void setEmergencyContact(String emergencyContact) {
        this.emergencyContact = emergencyContact;
    }

    public String getEmergencyContact() {
        return emergencyContact;
    }

    public void setEmergencyPhone(String emergencyPhone) {
        this.emergencyPhone = emergencyPhone;
    }

    public String getEmergencyPhone() {
        return emergencyPhone;
    }

    public void setNativePlace(String nativePlace) {
        this.nativePlace = nativePlace;
    }

    public String getNativePlace() {
        return nativePlace;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    public void setSourcePlace(String sourcePlace) {
        this.sourcePlace = sourcePlace;
    }

    public String getSourcePlace() {
        return sourcePlace;
    }

    public void setHouseholdType(String householdType) {
        this.householdType = householdType;
    }

    public String getHouseholdType() {
        return householdType;
    }

    public void setDormbuildingId(Long dormbuildingId) {
        this.dormbuildingId = dormbuildingId;
    }

    public Long getDormbuildingId() {
        return dormbuildingId;
    }

    public void setDormbuildingName(String dormbuildingName) {
        this.dormbuildingName = dormbuildingName;
    }

    public String getDormbuildingName() {
        return dormbuildingName;
    }

    public void setDormId(Long dormId) {
        this.dormId = dormId;
    }

    public Long getDormId() {
        return dormId;
    }

    public void setDormName(String dormName) {
        this.dormName = dormName;
    }

    public String getDormName() {
        return dormName;
    }

    public void setMajorId(Long majorId) {
        this.majorId = majorId;
    }

    public Long getMajorId() {
        return majorId;
    }

    public void setMajorName(String majorName) {
        this.majorName = majorName;
    }

    public String getMajorName() {
        return majorName;
    }

    public void setClsId(Long clsId) {
        this.clsId = clsId;
    }

    public Long getClsId() {
        return clsId;
    }

    public void setClsName(String clsName) {
        this.clsName = clsName;
    }

    public String getClsName() {
        return clsName;
    }

    public void setCollegeId(Long collegeId) {
        this.collegeId = collegeId;
    }

    public Long getCollegeId() {
        return collegeId;
    }

    public void setCollegeName(String collegeName) {
        this.collegeName = collegeName;
    }

    public String getCollegeName() {
        return collegeName;
    }

    public void setTeacherId(Long teacherId) {
        this.teacherId = teacherId;
    }

    public Long getTeacherId() {
        return teacherId;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setCounselorId(Long counselorId) {
        this.counselorId = counselorId;
    }

    public Long getCounselorId() {
        return counselorId;
    }

    public void setCounselorName(String counselorName) {
        this.counselorName = counselorName;
    }

    public String getCounselorName() {
        return counselorName;
    }

    public void setBankCard(String bankCard) {
        this.bankCard = bankCard;
    }

    public String getBankCard() {
        return bankCard;
    }

    public void setIssuingBank(String issuingBank) {
        this.issuingBank = issuingBank;
    }

    public String getIssuingBank() {
        return issuingBank;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }

    public String getPhoto() {
        return photo;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("userId", getUserId())
                .append("stuCode", getStuCode())
                .append("campusId", getCampusId())
                .append("realname", getRealname())
                .append("sex", getSex())
                .append("birthday", getBirthday())
                .append("idCard", getIdCard())
                .append("politicalStatus", getPoliticalStatus())
                .append("ethnicity", getEthnicity())
                .append("phone", getPhone())
                .append("emergencyContact", getEmergencyContact())
                .append("emergencyPhone", getEmergencyPhone())
                .append("nativePlace", getNativePlace())
                .append("address", getAddress())
                .append("sourcePlace", getSourcePlace())
                .append("householdType", getHouseholdType())
                .append("dormbuildingId", getDormbuildingId())
                .append("dormbuildingName", getDormbuildingName())
                .append("dormId", getDormId())
                .append("dormName", getDormName())
                .append("majorId", getMajorId())
                .append("majorName", getMajorName())
                .append("clsId", getClsId())
                .append("clsName", getClsName())
                .append("collegeId", getCollegeId())
                .append("collegeName", getCollegeName())
                .append("teacherId", getTeacherId())
                .append("teacherName", getTeacherName())
                .append("counselorId", getCounselorId())
                .append("counselorName", getCounselorName())
                .append("bankCard", getBankCard())
                .append("issuingBank", getIssuingBank())
                .append("photo", getPhoto())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
